- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当构建尝试使用 dotfuscator 的 .net core 应用程序时,我们可以使用 msbuild.exe 成功构建和混淆,但是使用 .net core cli 的任何构建或发布都会失败。
使用本地命令行以及我们的 DevOps 构建管道时都存在这些问题。
示例
msbuild.exe“项目文件.csproj”<-这可以工作并使用 dotfuscator
dotnet build“项目文件.csproj”<-这会引发以下错误。
dotnetpublish“项目文件.csproj”<-也会引发以下错误。
D:\Repos\PF\tools\dotfuscator\PreEmptive.Dotfuscator.Common.targets(262,5):错误 MSB4062:无法从程序集 D:\Repos\PF\tools 加载“FindProjectAssemblies”任务\dotfuscator\PreEmptive.Dotfuscator.Internal.Tasks.dll。无法加载文件或程序集“Microsoft.Build.Utilities.v4.0,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”。该系统找不到指定的文件。确认声明正确,程序集及其所有依赖项均可用,并且任务包含实现 Microsoft.Build.Framework.ITask 的公共(public)类。 [D:\Repos\PF\source\xxxxx.xxxxx.xxxxx.API\xxxxx.xxxxxx.xxxxxx.API.csproj]
最佳答案
更新(2019-12-20):我们发布了 a beta version of Dotfuscator Professional 6.0.0支持在非 Windows 操作系统上运行 Dotfuscator。这包括对 dotnet
的支持命令。
Dotfuscator 可以保护 .NET Core 程序集,然后可以在 .NET Core 下运行(即跨平台)。然而,截至撰写本文时,Dotfuscator 本身仅运行在基于 Windows 的经典 .NET Framework 上。
看来您已将 Dotfuscator Professional 集成到 the recommended way 中的构建中,它使用 Dotfuscator 的 MSBuild 目标和任务。说明包括添加此 <Import>
到您的项目文件:
<Import Project="$(MSBuildExtensionsPath)\PreEmptive\Dotfuscator\4\PreEmptive.Dotfuscator.Common.targets"/>
当我为 .NET Core 项目执行此操作时,我可以在 Visual Studio 中或通过 msbuild /t:Publish /p:Configuration=Release
进行构建并获得 protected 应用程序。但如果我尝试运行 dotnet build MyApp.csproj
或dotnet publish MyApp.csproj
,构建失败。我一开始收到的错误消息与您不同:
error MSB4019: The imported project "C:\Program Files\dotnet\sdk\2.1.503\PreEmptive\Dotfuscator\4\PreEmptive.Dotfuscator.Common.targets" was not found. Confirm that the path in the declaration is correct, and that the file exists on disk.
这是因为 Dotfuscator 不会将其 MSBuild 目标安装到 .NET Core 位置,而仅安装到 .NET Framework 和 Visual Studio 位置,因此 <Import>
上面没有找到需要的文件。
如果我改为从 C:\Program Files (x86)\MSBuild
复制 MSBuild 文件到我自己的位置,例如 C:\DotfuscatorMSBuildCopy
,然后更改 <Import>
因此:
<Import Project="C:\DotfuscatorMSBuildCopy\PreEmptive\Dotfuscator\4\PreEmptive.Dotfuscator.Common.targets"/>
然后我看到你的错误:
error MSB4062: The "FindProjectAssemblies" task could not be loaded from the assembly C:\DotfuscatorMSBuildCopy\PreEmptive\Dotfuscator\4\PreEmptive.Dotfuscator.Internal.Tasks.dll. Could not load file or assembly 'Microsoft.Build.Utilities.v4.0, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified. Confirm that the declaration is correct, that the assembly and all its dependencies are available, and that the task contains a public class that implements Microsoft.Build.Framework.ITask.
解决方案是使用 msbuild /t:Publish /p:Configuration=Release
进行构建而不是dotnet
.
(注:我在 Dotfuscator 团队工作,并以此身份回答问题。)
关于.net-core - dotfuscator 为 "dotnet build"或 "dotnet publish"- 无法加载 "FindProjectAssemblies"任务 PreEmptive.Dotfuscator.Internal.Tasks.dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54243003/
这个问题在这里已经有了答案: How to make a property protected AND internal in C#? (8 个答案) 关闭 9 年前。 我需要声明一个既受又 内部保
我对在 Kotlin 1.3 中使用 Strings.isNullOrEmpty 导入 jdk.internal.joptsimple.internal.Strings.isNullOrEmpty 的
我有一个项目,实习生单元测试应该位于与被测源代码不同的目录树中。有点像这样: projectRoot projectRoot/src projectRoot/tests projectRoot/tes
如何在功能测试中访问浏览器的主要 JavaScript 范围?例如,我想获取对 Dojo 小部件的引用并检查它的属性。例如,在浏览器 JavaScript 控制台中,我可以运行: dijit.
public class TestClass { protected internal int FieldA; internal protected int FieldB; }
我想创建一个内部自动属性: internal bool IP { get; protected internal set; } 我认为可以使 setter protected 或 protected
java.lang.NoSuchMethodError: okhttp3.internal.Internal.initializeInstanceForTests() When creating a
我正在尝试使用 intern 来测试在 node.js 下运行的 dojo 应用程序 我的 intern.js 配置文件是这样的: define({ loader: {
我在 Raspbian wheezy 上的 nginx 1.2.1-2.2 有点问题。我认为它是在我更改站点可用/默认文件中的索引后开始的。以下是相关文件: nginx.conf user www-d
我在尝试加载 Visual studio 2012 时遇到了此错误,遇到了异常。这可能是由扩展引起的,并且在 C:\Users\~\AppData 中给出了附加信息的位置\Roaming\Micros
我正在将一个项目迁移到 Java9,在我切换到新的 Java 版本后,测试开始失败,看起来 PowerMock 正在尝试访问一些它无法访问的类。 Tests run: 1, Failures: 0,
该触发器用于检测进度中的顺序是否已更新,并有助于更新进度的概览状态和完成时间。 但是当发生内部错误时,它并不总是有效,如下所示: Error: 13 INTERNAL: An internal err
当我尝试将包含一些 JavaScript 的项目导入工作区时(使用 Eclipse 的 Neon.M6 版本),出现此错误: eclipse.buildId=4.6.0.I20160317-0200
我在尝试访问 FullContact API 服务器时收到此错误。我正在使用 okhttp 2.7.5 和 okhttp-urlconnection 2.7.5 以及改造 1.9.0。 Caused
当我试图读取一个以前版本的 pandas 保存的 pickle 文件时,它产生了一个 ImportError。 ImportError: No module named 'pandas.core.in
我正在将一个项目迁移到 Java9,在我切换到新的 Java 版本后测试开始失败,似乎 PowerMock 正在尝试访问它无法访问的一些类。 Tests run: 1, Failures: 0, Er
我正在尝试设置 Lumen - 建立在 Laravel 组件之上的“微框架”。服务器端有 nginx + php-fpm。 这是我的 nginx 配置: server { server_nam
在我们的项目中,我们决定在我们的项目中使用最新的 fmt 版本 (6.2.0) 并主要使用 printf 功能,因为我们在广泛使用 printf 的地方进行日志记录。 我使用 fmt 包中包含的 CM
我正在使用 Mockito jar 为 Groovy 编写 Junit 测试用例,但它给了我以下异常: java.lang.NoSuchMethodError: org.mockito.interna
我们的应用程序使用 Google 集合中的 MapMaker 类,并且我们遇到了以下异常,但仅限于使用 webstart 的 OS X 10.4。从应用程序包启动时以及在 OS X 10.5 和 Wi
我是一名优秀的程序员,十分优秀!