เกิดข้อผิดพลาดในการปรับใช้แอปพลิเคชัน ClickOnce - การอ้างอิงในรายการไม่ตรงกับข้อมูลประจำตัวของแอสเซมบลีที่ดาวน์โหลด


105

ฉันกำลังพยายามปรับใช้แอปพลิเคชัน ClickOnce แต่การติดตั้งล้มเหลวบนไคลเอนต์ นี่คือบันทึกข้อผิดพลาด:

PLATFORM VERSION INFO
Windows             : 6.1.7601.65536 (Win32NT)
Common Language Runtime     : 4.0.30319.1
System.Deployment.dll       : 4.0.30319.1 (RTMRel.030319-0100)
clr.dll             : 4.0.30319.1 (RTMRel.030319-0100)
dfdll.dll           : 4.0.30319.1 (RTMRel.030319-0100)
dfshim.dll          : 4.0.31106.0 (Main.031106-0000)

SOURCES
Deployment url          : http://MyProduct.com/download/workstation/MyProduct%20Front%20Desk.application
                    Server      : Microsoft-IIS/7.5
                    X-Powered-By    : ASP.NET
Deployment Provider url     : http://MyProduct.com/Download/Workstation/MyProduct%20Front%20Desk.application
                    Server      : Microsoft-IIS/7.5
                    X-Powered-By    : ASP.NET
Application url         : http://MyProduct.com/Download/Workstation/Application%20Files/MyProduct%20Front%20Desk_1_0_0_7/MyProduct%20Front%20Desk.exe.manifest
                    Server      : Microsoft-IIS/7.5
                    X-Powered-By    : ASP.NET

IDENTITIES
Deployment Identity     : MyProduct Front Desk.application, Version=1.0.0.7, Culture=neutral, PublicKeyToken=df343a0868ab2d74, processorArchitecture=msil
Application Identity        : MyProduct Front Desk.exe, Version=1.0.0.7, Culture=neutral, PublicKeyToken=df343a0868ab2d74, processorArchitecture=msil, type=win32

APPLICATION SUMMARY
* Installable application.

ERROR SUMMARY
Below is a summary of the errors, details of these errors are listed later in the log.
* Activation of http://MyProduct.com/download/workstation/MyProduct%20Front%20Desk.application resulted in exception. Following failure messages were detected:
    + Reference in the manifest does not match the identity of the downloaded assembly MyProductSiteServer.exe.

COMPONENT STORE TRANSACTION FAILURE SUMMARY
No transaction error was detected.

WARNINGS
There were no warnings during this operation.

OPERATION PROGRESS STATUS
* [03/17/11 11:51:04] : Activation of http://MyProduct.com/download/workstation/MyProduct%20Front%20Desk.application has started.
* [03/17/11 11:51:04] : Processing of deployment manifest has successfully completed.
* [03/17/11 11:51:04] : Installation of the application has started.
* [03/17/11 11:51:05] : Processing of application manifest has successfully completed.
* [03/17/11 11:51:06] : Found compatible runtime version 4.0.30319.
* [03/17/11 11:51:06] : Request of trust and detection of platform is complete.

ERROR DETAILS
Following errors were detected during this operation.
* [03/17/11 11:51:30] System.Deployment.Application.InvalidDeploymentException (RefDefValidation)
    - Reference in the manifest does not match the identity of the downloaded assembly MyProductSiteServer.exe.
    - Source: System.Deployment
    - Stack trace:
        at System.Deployment.Application.DownloadManager.ProcessDownloadedFile(Object sender, DownloadEventArgs e)
        at System.Deployment.Application.FileDownloader.DownloadModifiedEventHandler.Invoke(Object sender, DownloadEventArgs e)
        at System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next)
        at System.Deployment.Application.SystemNetDownloader.DownloadAllFiles()
        at System.Deployment.Application.FileDownloader.Download(SubscriptionState subState)
        at System.Deployment.Application.DownloadManager.DownloadDependencies(SubscriptionState subState, AssemblyManifest deployManifest, AssemblyManifest appManifest, Uri sourceUriBase, String targetDirectory, String group, IDownloadNotification notification, DownloadOptions options)
        at System.Deployment.Application.ApplicationActivator.DownloadApplication(SubscriptionState subState, ActivationDescription actDesc, Int64 transactionId, TempDirectory& downloadTemp)
        at System.Deployment.Application.ApplicationActivator.InstallApplication(SubscriptionState& subState, ActivationDescription actDesc)
        at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl)
        at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)

COMPONENT STORE TRANSACTION DETAILS
No transaction information is available.

exe หลักที่ฉันต้องปรับใช้คือMyProductFrontDesk.exeซึ่งมีการพึ่งพาMyProductSiteServer.exe- และดูเหมือนว่าจะเกิดข้อผิดพลาดขึ้น: "การอ้างอิงในรายการไม่ตรงกับข้อมูลประจำตัวของแอสเซมบลีที่ดาวน์โหลด MyProductSiteServer.exe"

รายการใดที่ต้องได้รับการแก้ไข แล้วยังไง?


โครงการ MySiteServer.exe อยู่ในโซลูชัน Visual Studio เดียวกันกับ MyProductFrontDesk.exe หรือไม่ ถ้าเป็นเช่นนั้นการกำหนดค่าบิวด์ของคุณมีการเลือกแอสเซมบลีทั้งสองเพื่อสร้างหรือไม่
เจย์

@Jay - ใช่ในโซลูชันเดียวกันทั้งคู่เลือกที่จะสร้าง
Shaul Behr

คำตอบ:


111

มีปัญหากับ Visual Studio 2008 ซึ่งแก้ไขได้โดยการไม่ฝังรายการเริ่มต้น - หนึ่งในความคิดเห็นในบทความนั้นชี้ให้เห็นว่าปัญหายังคงมีอยู่ใน Visual Studio 2010

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


ฉันพบว่าความคิดเห็น 488301มีประโยชน์อย่างยิ่ง: <assemblyIdentity/>องค์ประกอบในรายการที่กำหนดเองสามารถปรับเปลี่ยนได้ (หรือละเว้นเพื่อให้คอมไพเลอร์ปล่อยข้อมูลประจำตัวแอสเซมบลีที่ถูกต้อง) ใน.manifestไฟล์ที่กำหนดเองของคุณทำให้สามารถระบุสิ่งต่างๆเช่น<requestedExecutionLevel/>โดยไม่ทำลาย ClickOnce
binki

4
สถานการณ์ของฉันคือแอป GUI ที่ต้องการแอปที่ 2 ซึ่งเป็นแอปคอนโซล หากเช่นฉันคุณไม่ต้องการเปลี่ยนการตั้งค่าเริ่มต้นการเผยแพร่แอปพลิเคชันที่ 2 ด้วยตนเองนั้นสร้าง app.manifest ที่ปรากฏในโฟลเดอร์ Properties จากนั้นเผยแพร่อีกครั้งแอปพลิเคชันที่ 1 ทำงานได้โดยไม่ต้องเปลี่ยนการตั้งค่าเริ่มต้นของการฝังรายการ
aybe

7
มีปัญหาเดียวกันกับ VS 2013 วิธีนี้ใช้ได้ผล
EagleBeak

2
@EagleBeak เมนูนี้อยู่ที่ไหนใน VS2013? ฉันไม่เห็นอะไรเกี่ยวกับ "การสร้างแอปพลิเคชันโดยไม่มีรายการ"
Nefariis

3
ในเดือนมิถุนายน 2016 คำตอบที่ถูกต้องคือกำหนดค่าClickOnce Security Settings (ดูคำตอบที่โพสต์โดย Mauro)
Pierre Arnaud

58

ฉันมีปัญหาเดียวกันเมื่อฉันเพิ่มการอ้างอิงไปยังโครงการอื่น

วิธีแก้ปัญหานี้คือการเปิดใช้งานการตั้งค่าความปลอดภัย ClickOnceในโครงการที่อ้างอิงทั้งหมดตามที่ Ian อธิบายไว้ที่นี่ (เน้นของฉัน):

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

ฉันเชื่อว่านี่เป็นวิธีที่เหมาะสมในการแก้ไขเมื่อทำการอ้างอิงไปยังโครงการอื่นภายใต้โซลูชันเดียวกัน

โพสต์ฟอรั่มที่เชื่อมโยงได้หมดอายุลงแล้วโดยขณะนี้ แต่มันก็มีอยู่ในที่เก็บที่นี่


1
หลังจากลองใช้วิธีแก้ปัญหามากมายวิธีนี้เท่านั้นที่ใช้ได้กับฉัน ดังนั้นฉันจึงคิดว่านี่น่าจะเป็นคำตอบที่ยอมรับได้ ...
Tareq

คุณสามารถทำได้เช่นเดียวกันกับการแก้ไข.cprojไฟล์ด้วย<PropertyGroup><TargetZone>LocalIntranet</TargetZone></PropertyGroup>
VMAtm

https://github.com/Squirrelฉันได้ปิดการใช้งานการตั้งค่าผู้ที่สองขณะที่ฉันถูกหลอกลวงรอบกับ เมื่อ ClickO (ไม่ใช่การผลิต) ของฉันใช้งานได้หยุดทำงานฉันก็ลืมเรื่องนี้ทั้งหมด
Walter Stabosz

35

ฉันพบปัญหาเดียวกัน แต่วิธีแก้ปัญหาของฉันแตกต่างกันมาก

แอปพลิเคชัน ClickOnce ของฉันอ้างถึงโครงการไฟล์ EXE อื่นในโซลูชันของฉันดังนั้นเมื่อไคลเอนต์ดาวน์โหลดและมีไฟล์ EXE อีกไฟล์นั้นไม่มีไฟล์ Manifest

การลบการพึ่งพาบนปฏิบัติการอื่นช่วยแก้ปัญหาของฉันได้


2
ฉันยังมี EXE สองตัว การลบการอ้างอิงจะไม่รวม EXE ที่อ้างถึงออกจากบิลด์ มีวิธีรวมไหม
Uri Abramson

10
นี่เป็นทางออกสำหรับฉัน หนึ่งในโครงการที่ EXE หลักของฉันอ้างถึงคือ 'Windows Application' เมื่อฉันเปลี่ยนโปรเจ็กต์นั้นเป็น 'Class Library' และเผยแพร่ซ้ำทุกอย่างก็ใช้ได้
Chris Ray

ฉันใช้คำแนะนำของ @ChrisRay ใน VS2012 และติดตั้งโปรแกรมโดยไม่มีปัญหาใด ๆ ขอบคุณ!
Rolan

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

วิธีแก้ปัญหาสำหรับฉันคือทั้งสองอย่าง (this และ @stuartd) - ฉันมี EXE เป็นชุดอ้างอิงซึ่งไม่มีรายการ แต่ฉันไม่สามารถ "ลบ" ข้อมูลอ้างอิงนี้ได้เพราะฉันจำเป็นต้องใช้มัน ดังนั้นฉันต้องไปที่โครงการของการพึ่งพา EXE นี้ใช้ข้อเสนอแนะของ stuartd จากนั้นทุกอย่างก็ใช้งานได้ดี
KFL

11

ฉันยืนยันว่าปัญหานี้ยังมีอยู่ใน Visual Studio 2010 การเลือก "สร้างแอปพลิเคชันโดยไม่มีรายการ" ในคุณสมบัติโครงการ - แอปพลิเคชัน - ทรัพยากรช่วยแก้ปัญหาได้


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

6

สิ่งนี้อาจเกิดขึ้นได้หากคุณมีแพ็คเกจNuGetสองเวอร์ชันที่อ้างอิงในไฟล์ DLL ที่แตกต่างกันในโปรเจ็กต์ของคุณ ในกรณีของฉันฉันใช้เฟรมเวิร์กชื่อ Catel และฉันมีเวอร์ชันที่ใหม่กว่าที่อ้างถึงในไฟล์ DLL หนึ่งไฟล์มากกว่าอีกไฟล์หนึ่ง (การกำกับดูแล) แต่สิ่งนี้ทำให้ ClickOnce คายข้อผิดพลาดนี้ การอ้างถึงเวอร์ชันเดียวกันสามารถแก้ปัญหาได้


4

ฉันมีปัญหาเดียวกัน แต่วิธีแก้ปัญหาของฉันคือเปลี่ยน 'Platform target' เป็น 'x86' (Project Properties -> Build Tab) มันถูกตั้งค่าเป็น CPU ใดก็ได้ ทันทีที่ฉันเปลี่ยนการตั้งค่าและเผยแพร่ซ้ำโปรแกรมติดตั้ง ClickOnce ก็สามารถดำเนินการให้เสร็จสิ้นได้


1
ปัญหาที่คล้ายกันมาก: ฉันเปิดใช้งาน "ต้องการ 32 บิต"; การปิดการแก้ไขปัญหา
Roman Starkov

4

ฉันพบข้อผิดพลาดเดียวกันเมื่อปรับใช้กับโครงการที่ตั้งค่าเป็น Debug เมื่อเปลี่ยนกลับเป็น Release ก็ไม่มีข้อผิดพลาด


4

ฉันมีปัญหาเดียวกัน ฉันไม่สามารถลบการอ้างอิงได้ตามที่โปรเจ็กต์หลักต้องการ โครงการที่สองคือโครงการคอนโซล

ฉันเปลี่ยนเป็นไลบรารีชั้นเรียนแล้วทุกอย่างก็ใช้ได้


ความคิดเห็นนี้ช่วยแก้ปัญหาของฉันได้ ขอบคุณ!
casaout

2

วิธีแก้ปัญหาอื่นในกรณีที่ไม่สามารถเปลี่ยนการพึ่งพา exe กับรายการแอปที่ไม่ดีได้ (พูดว่ามาจากแพ็คเกจ NuGet) ไบนารีสามารถรวมเป็นเนื้อหาที่มีส่วนขยายจำลองได้ดังนั้น ClickOnce จึงไม่พยายามตรวจสอบความถูกต้องของไฟล์ Manifest จากนั้นเปลี่ยนชื่อในระหว่างการเริ่มต้นแอป

csproj:

  <Content Include="..\packages\<package>\lib\<app>.exe">
    <Link><app>.exe.bin</Link>
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
  </Content>
  <ItemGroup>
    <PublishFile Include="<app>">
      <Visible>False</Visible>
      <Group>
      </Group>
      <TargetPath>
      </TargetPath>
      <PublishState>Exclude</PublishState>
      <IncludeHash>True</IncludeHash>
      <FileType>Assembly</FileType>
    </PublishFile>
  </ItemGroup>

App.xaml.cs:

public partial class App : Application
{
    private void Application_Startup(object sender, StartupEventArgs e)
    {
        var appDir = Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName);
        if (!File.Exists($"{appDir}\\<app>.exe"))
        {
            File.Copy($"{appDir}\\<app>.exe.bin", $"{appDir}\\<app>.exe");
        }
    }
}

1

ฉันมีปัญหาเดียวกันและฉันได้ลองวิธีแก้ไขปัญหาที่แนะนำก่อนหน้านี้ทั้งหมดที่นี่และทั้งหมดไม่ได้ผล

ฉันแก้ไขโดยเปลี่ยนตำแหน่งการอัปเดต จากคุณสมบัติของโครงการ -> เผยแพร่ -> อัพเดท เปลี่ยนตำแหน่งอัพเดตเป็นโฟลเดอร์ที่เผยแพร่ของคุณ


1

ยังแก้ไขสำหรับ ClickOnce .exe เรียก. exe เรียก. exe

ฉันมีปัญหานี้เช่นกันโดยใช้ VB.NET ใน Visual Studio 2010

ฉันมีแอปพลิเคชัน ClickOnce Windows Forms ที่อ้างอิงแอปพลิเคชัน Windows Forms ตัวที่สองซึ่งจะอ้างอิงถึงแอปพลิเคชัน Windows Forms ที่สาม (แอปพลิเคชันที่สองและสามเหล่านี้เป็นไฟล์EXEแทนที่จะเป็นไฟล์ DLL เพื่อความเรียบง่ายเนื่องจากมีแนวโน้มที่จะรันแบบสแตนด์อโลนหรือเรียกว่าด้วยคุณสมบัติที่ส่งผ่านไปยังแอปพลิเคชันเหล่านี้ได้เท่าเทียมกัน)

ฉันต้องแสดงความคิดเห็นเกี่ยวกับเนื้อหารายการของแอปพลิเคชันที่สองและสามตาม:

การฝึกปฏิบัติ: การปรับใช้แอปพลิเคชัน ClickOnce ด้วยตนเอง

มันทำงานได้อย่างสมบูรณ์


1

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

โครงการ -> คุณสมบัติ -> แท็บแอปพลิเคชัน -> ทรัพยากร -> รายการ -> แบบเลื่อนลง "สร้างแอปพลิเคชันโดยไม่มีรายการ"

จากนั้นสลับไปยังคุณสมบัติโครงการของโปรแกรมที่อ้างถึงและทำซ้ำขั้นตอน


0

ฉันใช้ Visual Studio 2012 บน Windows 7 และต้องการเผยแพร่โซลูชันที่ประกอบด้วยสองโครงการ

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


0

ฉันมีปัญหาอื่นเล็กน้อยซึ่งฉันสามารถแก้ไขได้และฉันจึงต้องการโพสต์ ปัญหาของฉันคือฉันเรียกใช้ TFS 3 สาขา ฉันได้อัปเกรดการควบคุม Telerik ในสาขาหนึ่งของฉัน แต่ไม่ใช่สาขาอื่น เมื่อฉันอัปเกรดส่วนควบคุม Telerik ในทั้ง 3 สาขาและเผยแพร่อีกครั้งมันใช้งานได้และข้อผิดพลาดนี้ก็หายไป

ตอนนั้นผมใช้ VS2015


0

มันน่าสนใจ. ฉันเพิ่งปรับใช้แอปพลิเคชันใหม่และแก้ไขปัญหาแล้ว ไฟล์อาจเสียหายเนื่องจากเครือข่าย


0

ฉันใช้mage.exeเพื่อสร้างรายการของฉัน การเพิ่มสิ่งนี้เพื่อ.csprojแก้ไขปัญหาของฉัน นอกจากนี้คุณยังอาจลอง-nowin32manifest ธงคอมไพเลอร์ ; ฉันไม่ได้ทดสอบ ฉันไม่เห็น "สร้างแอปพลิเคชันโดยไม่มีรายการ" ของ stuartd ใน Visual Studio 2017 ฉันคิดว่านี่คือสิ่งที่ทำ

<PropertyGroup>
  <NoWin32Manifest>true</NoWin32Manifest>
</PropertyGroup>

ฉันมีสิ่งนี้ใน.csproj:

<GenerateManifests>false</GenerateManifests>

0

ใน Visual Studio 2017 เวอร์ชันของฉันเวอร์ชัน 15.6.6 (แต่อาจมีก่อนหน้านี้) ฉันพบว่าไฟล์แอปพลิเคชันไม่ได้อยู่ในโครงการ Exe คลิกขวาและเผยแพร่ แต่อยู่ภายใต้แท็บเผยแพร่คุณสมบัติโครงการซึ่งคุณสามารถตั้งค่าได้ ของไฟล์แอปพลิเคชันที่คุณต้องการใส่ในการติดตั้ง

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


0

ฉันมีปัญหาเดียวกันเมื่อสองสามนาทีก่อนและด้านล่างนี้คือขั้นตอนที่ฉันใช้ในการแก้ไข

สำคัญ

  • a = โครงการหลัก (โครงการที่คุณต้องการเผยแพร่เช่น myProduct)
  • b = โครงการอ้างอิง (เช่น MyProductSiteServer)

รายการตรวจสอบ

  1. ไปที่คุณสมบัติ -> แอปพลิเคชัน -> ทรัพยากร -> ตรวจสอบไอคอนและรายการ (สำหรับทั้ง a และ b)

  2. ไปที่คุณสมบัติ -> สร้าง: ตรวจสอบให้แน่ใจว่า a และ b อยู่บนแพลตฟอร์มเป้าหมายเดียวกัน

  3. ไปที่คุณสมบัติ -> ความปลอดภัยและตรวจสอบให้แน่ใจว่า a และ b ได้ตรวจสอบการตั้งค่าเหล่านี้: "เปิดใช้งานการตั้งค่าความปลอดภัย ClickOnce" และ "นี่คือแอปพลิเคชันที่เชื่อถือได้เต็มรูปแบบ"

  4. ไปที่คุณสมบัติ -> เผยแพร่: ฉันขอแนะนำให้คุณเปลี่ยนเส้นทางของโฟลเดอร์การเผยแพร่


0

ฉันมีปัญหาเดียวกันนี้กับแอปพลิเคชัน VS 2019 ของฉัน

ฉันได้ลองสร้างแอปพลิเคชันโดยไม่มีไฟล์ Manifest แต่ก็ไม่ได้ผล

สิ่งที่ได้ผลมีดังต่อไปนี้:

  1. ไปที่สร้าง -> เผยแพร่ -> แอปพลิเคชัน
  2. คลิกที่ปุ่ม "ข้อมูลการประกอบ"
  3. เลือกตัวเลือก "Make assembly COM-Visible"

หวังว่าจะช่วยได้!

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