我正在尝试为Outlook插件创建一个小型安装程序,其中包含对某些TFS程序集的引用。
我尝试通过installshield创建一个手动安装程序,但是由于Outlook一直忽略了Addin,因此失败了。
所以正确的方法是通过'Publish'和ClickOnce deplyoment。这可行,但似乎有间接引用Microsoft.WITDataStore.dll'。当我发布AddIn时,不会部署此程序集,并且vsto文件无法正确安装AddIn。
所以,我认为最简单的方法是添加程序集,但是当我尝试通过“C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ Common7 \ IDE \添加程序集时ReferenceAssemblies \ v2.0 \ Microsoft.WITDataStore.dll“,我收到错误:
---------------------------
Microsoft Visual Studio
---------------------------
A reference to 'C:\Program Files (x86)\Microsoft Visual Studio
12.0\Common7\IDE\ReferenceAssemblies\v2.0\Microsoft.WITDataStore.dll'
could not be added. Please make sure that the file is accessible, and
that it is a valid assembly or COM component.
---------------------------
OK
---------------------------
我的第二种方法是创建一个自己的发布配置文件并尝试手动添加此程序集,但似乎只能为Web项目而不是插件创建配置文件。
我真的没有太多关于这个问题,通过msdn I get the following suggestion,这根本没有帮助。
我没有想到这个问题的解决方案吗?
编辑:我试过了jessehouwing的建议。这很有意思:如果我将Assembly作为内容添加到Main-Project(Outlook界面),甚至设置'Do not copy',我得到所需的Microsoft.WITDataStore.dll.deploy - File, 但在拆包时也出现以下错误:
System.IO.IOException:该文件 “C:\用户\ matthias.mueller \应用程序数据\本地
\ TEMP \部署\ JVX5J0LT.O0R \ 8P6ZQORW.DQJ \ Microsoft.WITDataStore.dll” 已经存在。
如果我将程序集添加到项目中,可能需要它直接(DataAccess to TFS),则不会创建文件并且我得到原始错误。 我也试过“复制如果更新”和“总是复制”,但我也得到了“已存在”的错误。
答案 0 :(得分:1)
对于那些将在.Net核心项目上工作的人来解决这个问题。我需要做的是将这些dll添加到Project中。并将其添加到project.json
"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true,
"copyToOutput": { "includeFiles": [ "Microsoft.WITDataStore32.dll", "Microsoft.WITDataStore64.dll" ] }
},
"publishOptions": {
"include": [
"wwwroot",
"Views",
"Areas/**/Views",
"appsettings.json",
"web.config"
],
"includeFiles": [ "Microsoft.WITDataStore32.dll", "Microsoft.WITDataStore64.dll" ]
},
否则,当您发布到Azure时,Visual Studio不会将这些文件复制到输出文件夹中。