เหตุใดฉันจึงได้รับ“ ไม่พบใบรับรองการลงนามอย่างชัดแจ้งในที่เก็บใบรับรอง” ใน Excel Addin ของฉัน


216

ฉันมีโครงการ Add-in ของ Excel ที่สร้างขึ้นเมื่อสองปีก่อนใน Visual Studio 2008 มีการเปลี่ยนแปลงบางอย่างดังนั้นฉันจึงอัปเกรดเป็น Visual Studio 2010 (IDE เดียวที่ฉันสามารถใช้ได้) ไม่แน่ใจว่านี่เป็นสาเหตุของปัญหาหรือไม่ แต่เป็นข้อมูลพื้นฐาน

เมื่อฉันตรวจสอบรหัสและรวบรวมมันฉันจะได้รับข้อผิดพลาด "ข้อผิดพลาด 1 ไม่พบใบรับรองการลงนามอย่างชัดแจ้งในที่เก็บใบรับรอง"

ทุกคนสามารถบอกฉันได้ว่าสิ่งนี้มีความหมายอย่างไรและจะแก้ไขได้อย่างไร

คำตอบ:


250

คุณต้องเพิ่มใบรับรองนั้นอีกครั้งลงในเครื่องของคุณหรือเลือกใบรับรองอื่น

ในการเลือกใบรับรองอื่นหรือสร้างใหม่ให้ไปที่หน้าคุณสมบัติของโครงการคลิกที่แท็บการเซ็นชื่อและเลือก

  • คลิกที่เลือกจากร้านค้า
  • คลิกที่เลือกจากไฟล์
  • คลิกที่สร้างใบรับรองการทดสอบ

เมื่อทำสิ่งเหล่านี้เสร็จสิ้นแล้วคุณควรจะสามารถสร้างมันได้อีกครั้ง


134
ในProject's properties pageคุณสามารถไปSigning tabที่กล่องกาเครื่องหมาย "ลงนามในรายการ ClickOnce"
รูเบนส์ Mariuzzo

10
@RubensMariuzzo - ไม่ใช่ถ้าคุณต้องการที่จะเซ็นชื่อจริง ๆ
Matt Wilko

การยกเลิกการเลือกนั้นเป็นไปไม่ได้สำหรับ Office Add-in และจะถูกตรวจสอบอีกครั้ง
it3xl

1
การดำเนินการ "สร้างใบรับรองการทดสอบ" สามารถทำได้บนบิลด์เซิร์ฟเวอร์ได้อย่างไร
ryanwebjackson

138

ฉันพบวิธีแก้ปัญหานี้ซึ่งแก้ไขปัญหาให้ฉัน: การลบรายการทั้งหมดในที่อยู่ของคุณ*.csproj:

<manifestcertificatethumbprint>...</manifestcertificatethumbprint>
<manifestkeyfile>...</manifestkeyfile>
<generatemanifests>...</generatemanifests>
<signmanifests>...</signmanifests>

1
นี่เป็นสิ่งจำเป็นเมื่อแอปพลิเคชันเคยใช้เป็น ClickOnce แต่ไม่ได้อีกต่อไป (ช่องทำเครื่องหมายเป็นสีเทาในแท็บการลงชื่อ)
Dan Bechard

1
ยังทำงานให้ฉัน เห็นได้ชัดว่ามีบางส่วนที่เหลือในไฟล์โครงการจากการทดลองบางอย่างที่เราทำกับมันที่ต้องทำความสะอาดด้วยตนเอง BTW - ฉันต้องลบไฟล์. snk ออกจากโครงการด้วย ดังนั้นสำหรับฉันแล้วคือ: ลบ. snk ปิดใช้งานการลงชื่อแก้ไขไฟล์โครงการโหลดโครงการและเปิดใช้งานการลงชื่อ
OSH

เห็นได้ชัดว่าจำเป็นถ้าคุณเคยตรวจสอบ ClickOnce แล้วเปลี่ยนเป็น Sign Assembly
Roland

1
นี่คือคำตอบที่ดีที่สุด
Homam

3
การยกเลิกการเลือก "การลงนาม ClientOnce Manifest" จะไม่ทำงานเสมอไป ทางออกคือการลบบรรทัดที่กล่าวถึงจากไฟล์ csproj ของคุณ
nectar

98

วิธีแก้ปัญหาอย่างรวดเร็วที่จะให้ฉันดำเนินต่อไปคือการยกเลิกการเลือก "ลงชื่อในรายการ ClickOnce" ใน: โครงการ -> (ชื่อโครงการ) คุณสมบัติ -> แท็บการลงชื่อ


1
ฉันต้องยกเลิกการเลือกทั้งสองSign the ClickOnce manifestsและSign the assemblyกล่องกาเครื่องหมายภายใต้แท็บการลงนามในคุณสมบัติของโครงการเพื่อกำจัดปัญหา ฉันไม่ได้ใช้การลงนามใด ๆ เลย
RBT

13

เมื่อโครงการถูกสร้างขึ้นครั้งแรกใบรับรองการเซ็นชื่อแบบคลิกครั้งเดียวถูกเพิ่มในแท็บการลงนามของคุณสมบัติของโครงการ สิ่งนี้จะแสดงรายการคลิกครั้งเดียวเมื่อคุณสร้างมัน ระหว่างนั้นและตอนนี้ใบรับรองนั้นจะไม่สามารถใช้ได้อีกต่อไป อาจไม่ใช่เครื่องที่คุณสร้างขึ้นในตอนแรกหรือไม่ก็ทำความสะอาดอย่างใด คุณต้องเพิ่มใบรับรองนั้นอีกครั้งลงในเครื่องของคุณหรือเลือกใบรับรองอื่น


24
"คุณต้องเพิ่มใบรับรองนั้นอีกครั้งลงในเครื่องของคุณหรือเลือกใบรับรองอื่น" หากคุณรู้วิธีเพิ่มใบรับรองมันจะมีประโยชน์มากหากคุณระบุวิธีในเธรดนี้หรือลิงก์ไปยังวิธีในเธรดนี้ เช่นเดียวกับที่คุณตอบเพียงครึ่งคำตอบ

1
หน้าคุณสมบัติของโครงการ> Signingในแท็บแนวตั้ง> Create test certificateคลิกที่ และไม่ลืมที่จะกระทำไฟล์ที่สร้างขึ้นใหม่You.Project_TemporaryKey.pfxเพราะ.pfxไฟล์ที่มักจะละเลย
it3xl

ฉันคิดว่าวิธีนี้เป็นวิธีเดียวที่เหมาะสมสำหรับโครงการ Visula Studio Office
it3xl

13

การเพิ่มใบรับรองใหม่แก้ไขปัญหานี้ให้ฉันได้ หน้าคุณสมบัติ -> การลงชื่อ -> คลิกที่สร้างใบรับรองการทดสอบ


มีวิธีการทำเช่นนี้ในการสร้างเซิร์ฟเวอร์ (ผ่านทางบรรทัดคำสั่ง)?
ryanwebjackson

8

ตรวจสอบให้แน่ใจว่าคุณส่ง.pfxไฟล์ไปยังที่เก็บ

ฉันเพิ่งพบในเริ่มต้นของฉัน*.pfx .gitignoreแสดงความคิดเห็น (โดย#) และกระทำการเปลี่ยนแปลง จากนั้นดึงที่เก็บและสร้างใหม่


3
  1. ลบรายการเหล่านี้กล่าวถึงในบทความนี้: http://manfredlange.blogspot.ca/2008/03/visual-studio-unable-to-find-manifest.html

  2. ลบไฟล์. snk หรือ. pfx ออกจากรูทโปรเจ็กต์ด้วย

อย่าลืมที่จะผลักดันการเปลี่ยนแปลงเหล่านี้ไปยัง GitHub เพราะเจนกินส์ดึงเฉพาะแหล่งที่มาจาก GitHub


0

ปัญหาของรายการที่เหลือที่ผิดพลาดในไฟล์. csproj ยังคงเกิดขึ้นกับ VS2015update3 และยังสามารถเกิดขึ้นได้หากคุณพยายามเปลี่ยนใบรับรองการลงนามสำหรับอีกรายการหนึ่ง (แม้ว่าจะเป็นที่สร้างขึ้นโดยใช้ตัวเลือก 'ใหม่' ในดรอปดาวน์การเลือกใบรับรอง) . คำแนะนำในคำตอบที่ยอมรับได้ (ทำเครื่องหมายว่าไม่ได้ลงชื่อ, บันทึก, ยกเลิกการโหลดโครงการ, แก้ไข. csproj, ลบคุณสมบัติที่เกี่ยวข้องกับใบรับรองเก่า / รหัสประจำตัว / คีย์และโครงการโหลดซ้ำ, ชุดใบรับรอง) เชื่อถือได้


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.