xmla 中缺少 <Files> 标记以部署程序集

Missing <Files> tag in xmla to deploy assembly

我正在尝试将自定义 .NET 程序集部署到我的 SSAS 数据库。这样做时,我面临 Clr Assembly must have main file specified error 并且更改标记答案中给出的目标框架并没有解决问题。

我还检查了 dll 是否被阻止了 here 但因为它是由我正在使用的同一系统编译的,所以不需要解除阻止,因此该选项不会甚至出现在程序集文件的属性中。

我尝试使用 SQL Server Data Tools 2012 和 SQL Server Management Studio 2012 进行部署,我遇到了同样的错误。我检查了 SSMS 用于部署它的 XMLA 脚本,结果发现缺少 <Files> 标记(通常包含程序集文件的二进制数据)。这可能意味着 SSMS 和 VS 无法读取程序集的二进制内容。

虽然 dll 不在网络上,而是在本地机器上,但我尝试了给定 here 的解决方法,但它也没有用,因为我无法首先部署 dll ALTER 稍后.

有什么我遗漏的吗?

我设法找到了解决方法。我使用以下 C# 代码获取程序集文件的二进制数据。

Convert.ToBase64String(File.ReadAllBytes(@"Path\To\Assembly.dll"))

然后我将一个 <Files> 标记手动添加到 XMLA 脚本以及上述函数 returns 的二进制数据。在执行修改后的 XMLA 脚本后,程序集现在已成功部署。

这是我的 <Files> 标签的样子。

<Files>
    <File>
       <Name>Assembly.dll</Name>
       <Type>Main</Type>
       <Data>
          <Block>
               <!-- Binary Data Obtained After Base64 Encoding -->
          </Block>
       </Data>
    </File>
</Files>