【发布时间】:2018-06-10 04:30:59
【问题描述】:
我的 nuget 包项目的结构如下(非常简单):
- lib
MyCom.dll
- tools
Init.ps1
初始化ps1的内容:
param($installPath, $toolsPath, $package, $project)
$project.Object.References | Where-Object { $_.Name -eq "MyCom" } | ForEach-Object { $_.EmbedInteropTypes = $false }
Nuget 规范:
<?xml version="1.0"?>
<package >
<metadata>
<id>***</id>
<version>***</version>
<title>***</title>
<authors>***</authors>
<owners>***</owners>
<licenseUrl>***</licenseUrl>
<projectUrl>***</projectUrl>
<iconUrl>***</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>***</description>
<releaseNotes>***</releaseNotes>
<copyright>Copyright 2018</copyright>
<tags>***</tags>
<references>
<reference file="MyCom.dll" />
</references>
</metadata>
<files>
<file src="lib\MyCom.dll" target="lib" />
</files>
</package>
我不知道为什么 init 没有将 myCom.dll 嵌入互操作设置为 false。 如果我使用 Install.ps1,也会发生同样的事情。
我正在使用 VS 2015。
【问题讨论】: